<?php
namespace app\api\controller;
use think\Controller;
use think\Db;
use think\Request;
use app\api\model\Acollect;
use app\api\model\Pcollect;
class User extends Controller
{
    /**
     * 注册接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/red
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/res?mail=123456@qq.com&pw=123456
     * 请求参数：
     * 名称 必填 
     * mail  是
     * pw    是
     * 返回参数说明
     * 名称  说明
     * code   0注册失败，1注册成功
     * message 提示信息
     */
    public function red()
    {
        $post = request()->param();
        $data=[
            'mail'=>$post['mail'],
            'pw'=> md5($post['pw']),
            'name'=> '用户000',
            'headpic'=> 'http://localhost/zyd/public/static/img/001.jpg',
            'status'=> 0,
            'time' =>date("Y-m-d h:i:s"),
        ];
        $res = Db::name('user')->where('mail',$post['mail'])->find();
        if(!($res == null))
        {
            return json(['code'=>0,'message'=>'此邮箱已注册']);
        }
        $hd = Db::table('user')->insert($data);
        if($hd)
        {
            return json(['code'=>1,'message'=>'注册成功']);
        }
        else{
            return json(['code'=>0,'message'=>'注册失败']);
        }
    }
    /**
     * 登录接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/login
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/login?mail=123456@qq.com&pw=123456
     * 请求参数：
     * 名称 必填 
     * mail  是
     * pw    是
     * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    用户信息
     */
    public function login()
    {
        $post = request()->param();
        $data=[
            'mail'=>$post['mail'],
            'pw'=> md5($post['pw']),
        ];
        $res = Db::name('user')->where($data)->find();
        if($res == null)
        {
            return json(['code'=>0,'message'=>'账号密码错误','data'=>null]);
        }
        $data1=[
            'name'=>$res['name'],
            'place'=>$res['place'],
            'gender'=>$res['gender'],
            'phone'=>$res['phone'],
            'mail'=>$res['mail'],
            'qq'=>$res['qq'],
            'signature'=>$res['signature'],
            'headpic'=>$res['headpic'],
        ];
        return json(['code'=>1,'message'=>'登录成功','data'=>$data1]);
    }
    /**
     * 用户详情接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/user
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/user?u_id=1
     * 请求参数：
     * 名称 必填 
     * u_id  是  用户id
     * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    用户信息
     */
    public function user()
    {
        $post = request()->param();
        
        $u_id = $post['u_id'];
        $res = Db::name('user')->where('u_id',$u_id)->find();
        if($res == null)
        {
            return json(['code'=>0,'message'=>'用户不存在','data'=>null]);
        }
        $data1=[
            'u_id'=>$res['u_id'],
            'name'=>$res['name'],
            'place'=>$res['place'],
            'gender'=>$res['gender'],
            'phone'=>$res['phone'],
            'mail'=>$res['mail'],
            'qq'=>$res['qq'],
            'signature'=>$res['signature'],
            'headpic'=>$res['headpic'],
        ];
        return json(['code'=>1,'message'=>'获取成功','data'=>$data1]);
    }
    /**
     * 关注用户接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/care
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/user?u_id=1
     * 请求参数：
     * 名称 必填 
     * u_id  是  用户id
     * b_id  是  被关注用户id
     * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    用户信息
     */
    public function care()
    {
        $post = request()->param();
        $data = [
            'u_id' => $post['u_id'],
            'b_id' => $post['b_id'],
        ];
        $res = Db::name('care')->where($data)->find();
        if($res == null)
        {
            $hd = Db::table('care')->insert($data);
                if($hd)
                {
                    return json(['code'=>1,'message'=>'关注成功']);
                }
                else{
                    return json(['code'=>0,'message'=>'失败']);
                }
        }
        else
        {
            $sc = Db::table('care')->delete($res1['care_id']);
            if($sc)
            {
                return json(['code'=>1,'message'=>'成功']);
            }
            else
            {
                return json(['code'=>0,'message'=>'失败']);
            }
        }
    }
    /**
     * 修改个人资料接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/update
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/update?u_id=1&name=盘子&place=是&gender=男&phone=123456&mail=12@qq.com&qq=123456&signature=哈哈
     * 请求参数：
     * 名称 必填 
     * u_id  是
     * name  是
     * place    是
     * gender    是
     * phone    是
     * mail    是
     * qq    是
     * signature
     * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     */
    public function update()
    {
        $post = request()->param();
        $data=[
            'name'=>$post['name'],
            'place'=>$post['place'],
            'gender'=>$post['gender'],
            'phone'=>$post['phone'],
            'mail'=>$post['mail'],
            'qq'=>$post['qq'],
            'signature'=>$post['signature'],
        ];
        
        $hd = Db::table('user')->where('u_id',$post['u_id'])->update($data);
        if($hd)
        {
            return json(['code'=>1,'message'=>'修改成功']);
        }
        else{
            return json(['code'=>0,'message'=>'失败']);
        }
    }
    /**
     * 修改头像接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/headpic
     * 请求方式：post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/headpic
     * 请求参数：
     * 名称 必填 
     * u_id  是
     * pic  是
     
     * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     */
    public function headpic()
    {
        $post = request()->param();
        $file = request()->file('pic');
       
        if($file)
        {
            $info = $file->rule('uniqid')->validate(['size' => 5242880, 'ext' => 'jpg,jpeg,png,gif'])->move(ROOT_PATH . 'public' . DS . 'static' . DS .'img');
            if($info)
            {
                $pic = $info->getFilename(); 
            }
        }
        $request = Request::instance();
        $http = $request->domain();
        $src = "$http/zyd/public/static/img/$pic";
        $data=[
            'headpic'=>$src,
        ];
        
        $hd = Db::table('user')->where('u_id',$post['u_id'])->update($data);
        if($hd)
        {
            return json(['code'=>1,'message'=>'修改成功']);
        }
        else{
            return json(['code'=>0,'message'=>'失败']);
        }
    }
    /**
     * 个人文章接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/alist_1
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/alist_1?u_id=1
     * 请求参数：
     * 名称 必填 
     * page  否 默认为第一页
     * u_id  是
    * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    文章信息
     */
    public function alist_1($page = '',$u_id)
    {
        
        $page = $page? $page : 1;
        $data = Db::name('article')->where('u_id',$u_id)->limit(10)->page($page)->select();
        if($data)
        {
            return json(['code'=>1,'message'=>'加载成功','data'=>$data]);
        }
        else
        {
            return json(['code'=>0,'message'=>'没有数据啦','data'=>$data]);
        }
    }
    /**
     * 个人作品列表接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/plist_1
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/plist_1?u_id=1
     * 请求参数：
     * 名称 必填 
     * page  否 默认为第一页
     * u_id  是
    * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    文章信息
     */
    public function plist_1($page = '',$u_id)
    {
        
        $page = $page? $page : 1;
        $data = Db::name('production')->where('u_id',$u_id)->limit(10)->page($page)->select();
        if($data)
        {
            return json(['code'=>1,'message'=>'加载成功','data'=>$data]);
        }
        else
        {
            return json(['code'=>0,'message'=>'没有数据啦','data'=>$data]);
        }
    }
    /**
     * 个人收藏文章接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/acollect
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/acollect?u_id=1
     * 请求参数：
     * 名称 必填 
     * page  否 默认为第一页
     * u_id  是
    * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    文章信息
     */
    public function acollect($page = '',$u_id)
    {
        
        $page = $page? $page : 1;
        // $data = Db::name('article')->where('u_id',$u_id)->limit(10)->page($page)->select();
        $data = Acollect::with('article')->where('u_id',$u_id)->select();
        if($data)
        {
            return json(['code'=>1,'message'=>'加载成功','data'=>$data]);
        }
        else
        {
            return json(['code'=>0,'message'=>'没有数据啦','data'=>$data]);
        }
    }
    /**
     * 个人收藏作品接口
     * 接口地址:http://localhost/zyd/public/index.php/api/user/pcollect
     * 请求方式：get/post
     * 请求示例：http://localhost/zyd/public/index.php/api/user/pcollect?u_id=1
     * 请求参数：
     * 名称 必填 
     * page  否 默认为第一页
     * u_id  是
    * 返回参数说明
     * 名称  说明
     * code   0失败，1成功
     * message 提示信息
     * data    文章信息
     */
    public function pcollect($page = '',$u_id)
    {
        
        $page = $page? $page : 1;
        // $data = Db::name('article')->where('u_id',$u_id)->limit(10)->page($page)->select();
        $data = Pcollect::with('zuoping')->where('u_id',$u_id)->select();
        if($data)
        {
            return json(['code'=>1,'message'=>'加载成功','data'=>$data]);
        }
        else
        {
            return json(['code'=>0,'message'=>'没有数据啦','data'=>$data]);
        }
    }
}
